/**
 * 
 */
package com.ihg.hiex.entity.session.during;

import org.apache.commons.lang3.StringUtils;

import com.demo2do.core.utils.Alias;

/**
 * @author downpour
 *
 */
@Alias("SessionCalibrationResultType")
public enum SessionCalibrationResultType {
    
    READY_NOW("ready now", "ready-now", "assessor.437", "已经就绪", "Ready Now"),
    
    SIX_MONTH("in 6 months", "six-month", "assessor.441", "约6个月左右就绪", "Ready in 6 months"),
    
    TWELVE_MONTH("6-12 months", "twelve-month", "assessor.442", "约6-12个月左右就绪", "Ready 6-12 months"),
    
    EIGHTEEN_MONTH("12-18 months", "eighteen-month", "assessor.443", "约12-18个月左右就绪", "Ready 12-18 months"),
    
    NOT_READY("not ready", "un-ready", "assessor.444", "尚未就绪", "Not Ready");

    private String description;
    
    private String alias;
    
    private String message;
    
    private String cnMessage;
    
    private String enMessage;
    
    /**
     * @param description
     * @param alias
     * @param message
     */
    private SessionCalibrationResultType(String description, String alias, String message, String cnMessage, String enMessage) {
        this.description = description;
        this.alias = alias;
        this.message = message;
        this.cnMessage = cnMessage;
        this.enMessage = enMessage;
    }

    /**
     * 
     * @param alias
     * @return
     */
    public static SessionCalibrationResultType aliasOf(String alias) {
        for(SessionCalibrationResultType sessionCalibrationResultType : SessionCalibrationResultType.values()) {
            if(StringUtils.equalsIgnoreCase(sessionCalibrationResultType.getAlias(), alias)) {
                return sessionCalibrationResultType;
            }
        }
        return null;
    }
    
    /**
     * 
     * @return
     */
    public boolean isReadyNow() {
        return this.equals(READY_NOW);
    }
    
    /**
     * 
     * @return
     */
    public boolean isSixMonth() {
        return this.equals(SIX_MONTH);
    }
    
    /**
     * 
     * @return
     */
    public boolean isTwelveMonth() {
        return this.equals(TWELVE_MONTH);
    }
    
    /**
     * 
     * @return
     */
    public boolean isEighteenMonth() {
        return this.equals(EIGHTEEN_MONTH);
    }
    
    /**
     * 
     * @return
     */
    public boolean isNotReady() {
        return this.equals(NOT_READY);
    }
    
    /**
     * @return the description
     */
    public String getDescription() {
        return description;
    }

    /**
     * @return the alias
     */
    public String getAlias() {
        return alias;
    }
    
    /**
     * @return
     */
    public String getMessage() {
        return message;
    }
    
    /**
     * 
     * @return
     */
    public String getCnMessage() {
        return cnMessage;
    }
    
    /**
     * 
     * @return
     */
    public String getEnMessage() {
        return enMessage;
    }

}
